package pe.edu.upc.dew.bibliotecaweb.service;

import java.util.List;
import pe.edu.upc.dew.bibliotecaweb.dao.LibroDao;
import pe.edu.upc.dew.bibliotecaweb.model.Libro;

/**
 * Clase LibroService, contiene la lÃ³gica del negocio de la clase libro.
 * @author DEW 2010
 */
public class LibroService {

    private LibroDao libroDao;

     /**
     * Constructor de la clase LibroService
     */
    public LibroService() {
        this.libroDao = new LibroDao();
    }

	/**
     * Metodo que busca un listado de libros que coincidan con el parametro ingresado
     * @param cadena, contiene el titulo referencial por el cual se desea realizar la busqueda
     * @return, devuelve un listado de todos los libros que coincidan con el titulo ingresado
     */
    public List<Libro> buscaPorTitulo(String cadena) {
        List<Libro> librosBd = libroDao.getLibroPorTitulo(cadena);
        if (librosBd.size()>0) {
            return librosBd;
        } else {
            return null;
        }
    }

    /**
     * Metodo que verifica si el libro ya exite, previamente a ser registrado como un nuevo libro
     * @param libro, objeto que contiene poblada la informacion de un libro con los parametros para la validacion
     * @return, devuelve verdadero en caso se haya encontrado algun libro cuyos datos coincidan con lo que se desea
     *          registrar. Caso contrario retorna false.
     */
    public boolean existeLibro(Libro libro) {
        return libroDao.existeLibro(libro);
    }

    /**
     * Metodo que invoca a otro para registrar la informacion de un nuevo libro
     * @param libro, recibe este objeto poblado con todos sus atributos, para registrarlos en la base de datos
     */
    public void addLibro(Libro libro){
        libroDao.add(libro);
    }
}
